class ProcesadorDeResultados

  def initialize(algoritmo_de_ganadores)
    @algoritmos_de_ganadores = algoritmo_de_ganadores
  end

  def ganadores(urna)
    res = {
      :graduados => resultado_graduados(urna),
      :alumnos => resultado_alumnos(urna),
      :docentes => resultado_docentes(urna)
    }
  end

  private
  
  def resultado_graduados(urna)
    @algoritmos_de_ganadores.procesar_ganadores_graduados votos_para(:graduados,urna)     
  end

  def resultado_alumnos(urna)
    @algoritmos_de_ganadores.procesar_ganadores_alumnos votos_para(:alumnos,urna)     
  end

  def resultado_docentes(urna)
    @algoritmos_de_ganadores.procesar_ganadores_docentes votos_para(:docentes, urna)     
  end

  def votos_para(claustro, urna)
    urna.select {|voto| voto.claustro == claustro}  
  end

end